<?php
namespace App\GameService\tasks;

use App\Utility\BaseEnum;
use EasySwoole\EasySwoole\Swoole\Task\AbstractAsyncTask;
class MoveClientTask extends AbstractAsyncTask
{
    /**
     * TODO 执行任务的内容
     *
     * @param mixed $taskData
     *            TO 任务数据
     * @param int $taskId
     *            TO 执行任务的task编号
     * @param int $fromWorkerId
     *            TO 派发任务的worker进程号
     */
    function run($taskData, $taskId, $fromWorkerId,$flags = null)
    {
        // 需要注意的是task编号并不是绝对唯一
        // 每个worker进程的编号都是从0开始
        // 所以 $fromWorkerId + $taskId 才是绝对唯一的编号
        // !!! 任务完成需要 return 结果
        BaseEnum::Logger("执行任务：操作中_".json_encode([$taskId,$fromWorkerId,$flags]),"user-login");
        BaseEnum::Logger("执行任务：获取参数：".json_encode($taskData),"user-login");
        return true;
    }
    
    /**
     *  TODO 任务执行完的回调
     * @param mixed $result  任务执行完成返回的结果
     * @param int   $task_id 执行任务的task编号
     * @author : evalor <master@evalor.cn>
     */
    function finish($result, $task_id)
    {
        // 任务执行完的处理
        BaseEnum::Logger("执行任务：执行完 ".json_encode([$task_id,$result]),"user-login");
    }
}